Phone number replace code system and method

ABSTRACT

A processor-implemented method of placing telephone calls includes inputting a toll-free number to initiate a phone call, determining whether the mobile device is within a North American Numbering Plan (NANP) service area, upon determining that the mobile device is within a NANP service area, initiating the phone call to the toll-free number, and upon determining that the mobile device is not within a NANP service area, replacing the Numbering Plan Area Code (NPA) of the toll-free number with a corresponding replace code to obtain a replace code toll-free number and initiating the phone call to the replace code toll-free number.

BACKGROUND

1. Technical Field

This patent document generally relates to a system and method of placingtelephone calls, and in particular relates to the automaticimplementation of replace codes.

2. Description of the Related Art

Each country determines for itself a particular numbering plan for phonenumbers. A numbering plan may be common to several countries, such asthe North American Numbering Plan (NANP), or may be unique to aparticular country.

Many numbering plans also provide for toll-free numbers. Typically, arecipient of a call to a toll-free number pays the cost of the call forthe tolls incurred within the numbering plan, but does not pay the costsfor additional tolls, such as an international toll. Many callers,however, incorrectly assume that international tolls, such as tollsincurred for telephone calls placed from Europe to North America, willbe covered by the recipient of the toll-free call. Thus, many toll-freenumbers are not accepted by telecommunication carriers (both wire andwireless) when the toll-free number is placed from a different countryof the recipient or from a different numbering plan of the recipient dueto the telecommunication carriers' experience with callers refusing topay the international portion of the call.

To resolve this problem, some numbering plans have implemented “replacecodes” for the toll-free codes. In a NANP country, such as the UnitedStates, for example, the toll-free codes 800, 888, and 877 havecorresponding replace codes 880, 881, and 882. When using a replacecode, the caller pays the same international call charge as for astandard call to the United States. For example, if a caller in Germanyattempts to place a call to a United States toll-free number1-800-XXX-XXXX, the caller may use the replace code 880. The call to thenumber 1-880-XXX-XXXX is not blocked by the international carrier, andthe caller pays a toll for an international call to the United States.

A caller may find it inconvenient to remember or even obtaincorresponding replace codes for particular numbers. Furthermore, acaller may not even know if replace codes are available for a particularnumbering plan of the country to which the caller is calling. Thus, acaller may spend a significant amount of time searching for the correctreplace code for a call recipient's toll-free number or searching forthe call recipient's direct dial number.

Finally, some carriers offer services to subscribers that automaticallyhandle international calls to toll-free numbers. However, the processingto support these services are handled by the carriers, and thesubscribers are typically charged a resultant processing fee or servicefee.

SUMMARY

A telephone communication device operable to initiate and receivecommunications over one or more communication networks comprises aprocessing subsystem, a memory subsystem, a display subsystem, acommunication subsystem, and an input/output subsystem. The processingsubsystem is coupled to the memory subsystem, display subsystem,input/output subsystem and communication subsystem, and is operable tostore and retrieve data in the memory subsystem, to execute instructionsstored in the memory subsystem, receive input data from the input/outputsubsystem, and to cause the communication subsystem to transmit andreceive data over the communication network. The telephone communicationdevice has stored in memory telephone communication device program codecomprising program instructions executable by the processing subsystem.Upon execution the program instructions cause the telephonecommunication device to receive a phone number as input and determine ifthe phone number corresponds to a national numbering plan of the currentservice area serving the telephone communication device. Upondetermining that the phone number corresponds to the national numberingplan of the current service area serving the telephone communicationdevice, the telephone communication device initiates a phone call to thephone number. Upon determining that the phone number does not correspondto the national numbering plan of the current service area serving thetelephone communication device, the telephone communication devicedetermines if the phone number has an associated replace code for anysubset of the phone number, and, if so, replaces the any subset of thephone number with the corresponding replace code to obtain a replacecode number and initiates a phone call to the replace code number.

A processor-implemented method of placing telephone calls from a mobiledevice comprises inputting a toll-free number to initiate a phone call,determining whether the mobile device is within a North AmericanNumbering Plan (NANP) service area, upon determining that the mobiledevice is within a NANP service area, initiating the phone call to thetoll-free number, and upon determining that the mobile device is notwithin a NANP service area, replacing the Numbering Plan Area Code (NPA)of the toll-free number with a corresponding replace code to obtain areplace code toll-free number and initiating the phone call to thereplace code toll-free number.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a mobile device;

FIG. 2 is a structure block diagram of a phone number replace codesystem that may be implemented in the mobile device of FIG. 1, or in anyother telephone communication device;

FIGS. 3 and 4 are flow diagrams for determining a current service areain which a mobile device is operating;

FIGS. 5–9 are flow diagrams for automatically implementing replace codesin phone numbers and initiating phone calls;

FIG. 10 is a block diagram of an example system for redirectingelectronic messages to and from the mobile device of FIG. 1; and

FIG. 11 is a more detailed block diagram of the mobile device of FIG. 1.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of a mobile device 100. The mobile device 100may comprise a display subsystem 102, a processing subsystem 104, amemory subsystem 106, a keyboard subsystem 108, a communicationsubsystem 110, and an audio subsystem comprising a speaker 112 and amicrophone 114. The mobile device 100 may be any mobile communicationdevice adapted to operate within a wireless communication network and ispreferably a two-way communication device. A more detailed descriptionof the mobile device 100 and an exemplary operating environment for themobile device 100 is described with respect to FIGS. 10 and 11 below.

Depending on the functionality provided by the mobile device 100, themobile device 100 may be referred to as a data messaging device, atwo-way pager, a cellular telephone with or without data messagingcapabilities, a wireless Internet appliance or a data communicationdevice (with or without telephony capabilities). Data communicationfunctions, such as e-mail, instant messaging, paging, and the like, areprimarily facilitated by the display subsystem 102, the keyboardsubsystem 108, and the communication subsystem 110, which provide theprimary user interface and communication capability for composing,reading and replying to data communications. Voice communicationfunctions are further facilitated by the audio subsystem comprising thespeaker 112 and the microphone 114.

The memory subsystem 106 stores mobile device program code comprisingprogram instructions that are executable by the processing subsystem104. The mobile device 100 is thus a programmable device that may beprogrammed to carry out multiple functions upon execution of the mobiledevice program code by the processing subsystem 104.

FIG. 2 is a structure block diagram of a phone number replace codesystem 200 that may be implemented in the mobile device 100 of FIG. 1,or in any other telephone communication device, such as a desktop phonesystem connected to a Public Switched Telephone Network (PSTN) system,or a mobile device operable to communication over a PSTN system. In theembodiment shown in FIG. 2, the phone number replace code system 200comprises a telephone communication application 202, a service areaidentifier software 204, a replace code mode software 206, and replacecode data 208.

Some national numbering plans have implemented “replace codes” forparticular phone numbers, e.g., toll-free numbers. Each nationalnumbering plan may define its own replace codes. The NANP numberingplan, for example, has designated the replace codes 880, 881, and 882for the toll-free codes 800, 877, and 888, respectively. When using areplace code, the caller pays the same international call charge as fora standard call. The call to the number modified by the replace code isnot blocked by the international carrier. Thus, when a user of themobile device 100 is outside of the country or national numbering planto which a phone call is to be placed, the user of the mobile device 100may use corresponding replace codes to place the phone call.

The replace code system 200 is operable to automatically insert replacecodes for a phone number depending on whether the phone numbercorresponds to a national numbering plan for the service area in whichthe mobile device 100 is operating. In general, the telephonecommunication application 202 is an application operative to placetelephone calls in response to a phone number input 210. In the case ofthe mobile device 100 of FIG. 1, the telephone communication application202 may comprise corresponding software and/or hardware that facilitatesmobile device telephony functions. The service area identifier software204 is operative to determine whether the phone number input 210corresponds to the national numbering plan of the current service areain which the mobile device 100 is operating. If the phone number input210 does not correspond to the national numbering plan of the currentservice area, then the replace code data 208 is accessed to replace asubset of the phone number input 210 with corresponding replace codenumbers, as indicated by the control loop 212. Function block 214 isthen called to initiate a phone call to the phone number. The phonenumber corresponding to function block 214 may be the phone number input210, or the phone number as modified with a corresponding replace codenumber.

The service area identifier software 204 may comprise processorexecutable instructions stored on a processor readable medium and isoperable to determine the current service area in which the mobiledevice 100 is operating. The service area of the mobile device 100 maybe determined by a system identifier that is broadcast by the wirelessnetwork in communication with the mobile device 100. For example, in aGSM network, a Location Area Identity (LAI) is continuously transmittedover a Broadcast Control Channel (BCCH). The LAI uniquely identifies aLocation Area (LA) within any Public Land Mobile Network (PLMN), andcomprises a Mobile Country Code (MCC), a Mobile Network Code (MNC) and aLocation Area Code (LAC). The MCC is a three digit number uniquelyidentifying a given country, and the MNC is either a two or three digitnumber used to uniquely identify a given network from within a specifiedcountry. Thus, by interrogating the LAI, the service area identifiermodule 204 may determine the service area in which the mobile device 100is operating.

In another embodiment, the service area identifier software 204 may beoperable to determine if the current service area in which the mobiledevice 100 is operating is the same service area from where wirelessservice for the mobile device 100 is provided. For example, in a GSMnetwork, each mobile device 100 includes a Subscriber Identity Module(SIM). Each SIM has stored therein an International Mobile SubscriberIdentity (IMSI) identifier. The IMSI is a unique identifier allocated toeach mobile subscriber in a GSM network and comprises an MCC, and MNC,and a Mobile Station Identification Number (MSIN). The MCC in the IMSIcorresponds to the country in which wireless service for the mobiledevice 100 is provided. By comparing the MCC in the IMSI to the MCCreceived over the BCCH, the service area identifier software 204 candetermine if the current service area in which the mobile device 100 isoperating is the same service area from where wireless service for themobile device 100 is provided.

In another embodiment, the service area identifier software 204 may beoperable to receive a user input comprising indicia of the service areain which the mobile device 100 is operating. For example, the user ofthe mobile device 100 may select from a list of countries the currentcountry in which the mobile device 100 is operating. Alternatively, theuser of the mobile device 100 may select an “Out of Home Country” or“Out of Home Numbering Plan” mode. The “Out of Home Country” mode may beselected if the user of the mobile device is away from his home country.The “Out of Home Numbering Plan” mode may be selected if the user of themobile device is in a country that has a different national numberingplan than the numbering plan in which wireless service is provided,e.g., if the user lives in a NANP country and travels to the UnitedKingdom, the user may select the “Out of Home Numbering Plan” mode.

The replace code mode software 204 may comprise processor executableinstructions stored on a processor readable medium and is operable tocause the mobile device 100 to automatically insert replace codeswhenever a corresponding number is input, regardless of the geographiclocation of the mobile device 100. The replace code mode software 204may be activated by a person who travels frequently; for example, anemployee of a company may program into the mobile device 100 thecompany's toll-free number, and then activate the replace code mode toautomatically insert the corresponding replace code for the company'stoll-free number.

The replace code data 208 comprises data related to replace codes forparticular national numbering plans. For example, the replace code data208 may comprise the toll-free replace codes for NANP toll-free numbers.Additional replace codes for NANP numbers and other national numberingplans may also be stored for other such national numbering plansimplementing replace codes. Accordingly, the mobile device 100 may beoperable to automatically implement replace codes for a plurality ofnational numbering plans if such data is stored in the mobile device 100memory. For example, if a user of the mobile device 100 places a call tothe United States while in the United Kingdom, NANP replace codes, asapplicable, can be used. Likewise, if the user places a call from theUnited States to a European country, replace codes for that Europeancountry, if designated and applicable to the number called, can be used.

The replace code data 208 may also store the particular types ofnational numbering plans for service areas. Defining service areas bynumber plans facilitates the implementation of replace codes based onthe particular numbering plan of the service area rather than theparticular country in which the mobile device 100 is operating. Forexample, the United States and Canada are NANP countries, while theUnited Kingdom is not. Accordingly, replace codes may not be requiredfor a NANP toll-free number when the mobile device 100 is operating inthe United States and Canada, but may be required when operating in theUnited Kingdom. Thus, the automatic implementation of replace codes maybe activated by determining the particular numbering plan of the servicearea in which the mobile device 100 is operating, rather than thecountry.

Some calls within the same numbering plan, however, may incur additionaltoll charges (e.g., a call from Bermuda to Canada, both NANP countries,may incur an overseas toll charge). Accordingly, the replace code datamay store additional information related to intra-numbering plan tollcharges and implement replace codes according to the intra-numberingplan toll charges.

FIG. 3 is a flow diagram 300 for determining a current service area inwhich a mobile device is operating. In step 302, the mobile devicereceives a system identifier from the wireless network. Typically, asystem identifier from a wireless network includes service area indicia,such as a MCC or MNC. In step 304, the system identifier is interrogatedby the mobile device to determine the current service area in which themobile device is operating. In step 306, the current service areaindicia are stored in the mobile device memory.

FIG. 4 is a flow diagram 310 for determining a current service area inwhich a mobile device is operating based on user input. This process maybe implemented if the user desires to manually provide indicia of thecurrent service area for the mobile device. In step 312, the mobiledevice receives user input indicia of the current service area in whichthe mobile device is operating. The user input indicia may specify thecurrent service area, e.g., Germany, United Kingdom, United States, etc.

Alternatively, the user input indicia may specify that the currentservice area is not the home service area from which the mobile devicereceives wireless service, e.g., if the mobile device service provideris located in the United States, and the user will be travellingextensively in Europe, the user may elect to specify that the currentservice area is not the United States rather than frequently updatingthe mobile device during travel. The latter option of specifying thatthe current service area is not the home service area may be useful forthe case in which the mobile device utilizes replace codes for the homeservice area only. For example, if the mobile device has only NANPreplace codes, automatic implementation of the replaces codes may beactivated by specifying that the mobile device is not operating in thehome service area, e.g., not in Canada, or not in the United States, ornot in a NANP country.

FIGS. 5–9 are flow diagrams for automatically implementing replace codesin phone numbers and initiating phone calls. Flow diagram 320 of FIG. 5implements replace codes based on the national numbering plan of thecurrent service area. In step 322, the mobile device receives a phonenumber as input. The phone number input may be received by the usermanually entering the phone number, or by selecting a contact in anaddress book, and the like.

Step 324 determines if the phone number corresponds to the nationalnumbering plan of the current service area. The determination may bemade comparing the numbering plan of the current service area to thenumbering plan to which the phone number corresponds, or may be made bycomparing the country of the current service area to the country towhich the phone number corresponds. For example, the country code of thephone number may be interrogated to determine the country or nationalnumbering plan to which the phone number corresponds.

Additionally, if the determination is made based on the nationalnumbering plans of the current service area and the service area towhich the phone number corresponds, and these national numbering plansare the same, then the replace code data 208 may be interrogated todetermine if any intra-numbering plan toll charges apply, as shown inoptional step 326.

If the phone number corresponds to the national numbering plan of thecurrent service area, and no intra-numbering plan toll charges apply,then the mobile device may initiate the phone call to the phone numberas input, as shown in step 328.

If the phone number does not correspond to the national numbering planof the current service area, or intra-numbering plan toll charges apply,then step 330 determines if the phone number has a corresponding replacecode for a subset of the phone number. If the phone number does not havea corresponding replace code for a subset of the phone number, e.g., thephone number is a direct dial to a non-toll-free number, then the mobiledevice may initiate the phone call to the phone number as input, asshown in step 328.

If the phone number does have a corresponding replace code for a subsetof the phone number, then in step 332 the subset of the input phonenumber is replaced with the corresponding replace code to obtain areplace code number. In step 334, the mobile device initiates a phonecall to the replace code phone number.

Flow diagram 340 of FIG. 6 implements replace codes based on the countryof the current service area. In step 342, the mobile device receives aphone number input. The phone number input may be received by the usermanually entering the phone number, or by selecting a contact in anaddress book, and the like.

Step 344 determines if the country called is the same as the country ofthe current service area. The determination may be made comparing thecountry of the current service area to the country to which the phonenumber corresponds. For example, the country code of the phone numbermay be interrogated to determine the country called, and the countrycalled may be compared to the country identified by the wireless networkcurrently providing service to the mobile device. Alternatively, thecountry called may be compared to a country that the user has manuallyspecified as the current service area of the mobile device.

If the country called is the same as the country of the current servicearea, then the mobile device may initiate the phone call to the phonenumber as input, as shown in step 346. If the country called is not thesame as the country of the current service area, then step 348determines if the phone number has a corresponding replace code for asubset of the phone number. If the phone number does not have acorresponding replace code for a subset of the phone number, e.g., thephone number is a direct dial to a non-toll-free number, then the mobiledevice may initiate the phone call to the input phone number, as shownin step 346.

If the phone number does have a corresponding replace code for a subsetof the phone number, then in step 350 the subset of the input phonenumber is replaced with the corresponding replace code to obtain areplace code number. In step 352, the mobile device initiates a phonecall to the replace code phone number.

Flow diagram 360 of FIG. 7 implements replace codes for toll-freenumbers based on a NANP service area. In step 362, the mobile devicereceives a NANP toll-free phone number as input. The phone number may bereceived by the user manually entering the phone number, or by selectinga contact in an address book, and the like.

Step 364 determines if the mobile device is within a NANP service area.The determination may be made by comparing the country of the currentservice area to a list of NANP countries or by a user-specified input.If it is determined that the mobile device is within a NANP servicearea, then the replace code data 208 may optionally be interrogated todetermine if any intra-numbering plan toll charges apply, as shown inoptional step 366.

If the mobile device is within a NANP service area, and nointra-numbering plan toll charges apply, then the mobile device mayinitiate the phone call to the phone number as input, as shown in step368.

If the mobile device is not within a NANP service area, or ifintra-number plan toll charges apply, then step 370 replaces a subset ofthe phone number with the corresponding replace code to obtain a replacecode number. In step 372, the mobile device initiates a phone call tothe replace code phone number.

Flow diagram 380 of FIG. 8 implements replace codes based on a replacecode mode. In step 382, the mobile device receives a phone number asinput. The phone number may be received by the user manually enteringthe phone number, or by selecting a contact in an address book, and thelike.

Step 384 determines if the mobile device is in a replace code mode. Thereplace code mode may be activated by a user of the mobile device.Alternatively, the replace code mode may be activated automatically whenthe mobile device determines that it is operating in a different countrythan the home country of the mobile device, or by similar decisionprocesses.

If the replace code mode is not activated, then the mobile device mayinitiate the phone call to the phone number as input, as shown in step386. If the replace code mode is activated, however, then step 388determines if the phone number has a corresponding replace code for asubset of the phone number. If the phone number does not have acorresponding replace code for a subset of the phone number, then themobile device may initiate the phone call to the phone number, as shownin step 390.

If the phone number does have a corresponding replace code for a subsetof the phone number, however, then in step 392 the subset of the phonenumber is replaced with the corresponding replace code to obtain areplace code number. In step 394, the mobile device initiates a phonecall to the replace code phone number.

Flow diagram 400 of FIG. 9 implements replace codes based on callconnections. In step 402, the mobile device receives a phone number asinput. The phone number may be received by the user manually enteringthe phone number, or by selecting a contact in an address book, and thelike.

Step 404 initiates a phone call to the phone number, and step 406determines if the phone call is connected. The determination may be madeautomatically, such as by monitoring for the connection, or by a userinput, such as by the user selecting a key if the call is not connected.

If the phone call is connected, the process ends. If the phone call isnot connected, however, then step 408 determines if the phone number hasa corresponding replace code for a subset of the phone number. If thephone number does not have a corresponding replace code for a subset ofthe phone number, then the process ends.

If the phone number does have a corresponding replace code for a subsetof the phone number, however, then in step 410 the subset of the phonenumber is replaced with the corresponding replace code to obtain areplace code number. In step 412, the mobile device initiates a phonecall to the replace code phone number.

The mobile device 100 of FIG. 1 may be used in a number of wirelesssystems, such as the example system 2000 of FIG. 10. The exampleredirector system 2000 of FIG. 10 redirects electronic messages to andfrom a mobile communication device 2020. The example redirection system2000 includes an enterprise server 2004, a mail server 2002, a storagemedium 2006 for electronic messaging (e.g., e-mail) account data, and awireless gateway 2016. Also illustrated are the mobile communicationdevice 2020, a wireless network 2018, a wide area network (WAN) 2012, afirewall 2010, a desktop client 2008, and one or more other electronicmessaging systems 2014.

The mail server 2002 may include electronic messaging software executingon a computer within a local area computer network (LAN). The mailserver 2002 is coupled to local network devices 2004, 2006, 2008 via theLAN, and is coupled to remote network devices 2014, 2016 via the WAN2012. The LAN and WAN 2012 may be separated by a firewall 2010.

The mail server 2002 maintains an electronic message account within theelectronic message account database 2006 for each desktop client 2008 inthe LAN. The electronic message account database 2006 may be one or morestorage devices coupled to the mail server 2002, and may be includedwithin the same network device as the mail server 2002 or in one or moreseparate devices within the LAN. The desktop client 2008 may be one of aplurality of computers (e.g., personal computers, terminals, laptopcomputers, or other processing devices) coupled to the mail server 2002via the LAN that executes electronic messaging software to send andreceive electronic messages via the mail server.

Electronic messages sent from the desktop client 2008 are stored by themail server 2002 in an outgoing message storage location (an “outbox”)within a corresponding electronic message account 2006. If the outgoingmessage is addressed to an electronic message account within the LAN,then the mail server 2002 delivers the message to an incoming messagestorage location (an “inbox”) in the appropriate electronic messageaccount 2006. If the outgoing message is addressed to an electronicmessage account in another electronic messaging system 2014, however,then the message is delivered via the WAN 2012. Similarly, incomingelectronic messages addressed to the electronic message account 2006 isreceived by the mail server 2002 and stored to the electronic messageaccount database 2006 within the appropriate incoming message storagelocation (“inbox”). The incoming electronic message may then beretrieved from the electronic message account 2006 by the desktop client2008, or may be automatically pushed to the desktop client 2008 by themail server 2002.

The enterprise server 2004 may include electronic message redirectionsoftware executing on a computer within the LAN. The enterprise server2004 is operational to redirect electronic messages from the electronicmessage account 2006 to the mobile communication device 2020 and toplace messages sent from the mobile communication device 2020 into theelectronic message account 2006 for delivery by the mail server 2002.The enterprise server 2004 stores mobile device information, such as awireless identification (e.g., a PIN), used to communicate with themobile communication device 2020. The enterprise server 2004 may, forexample, communicate with the mobile communication device 2020 using adirect TCP/IP level connection with the wireless gateway 2016, whichprovides an interface between the WAN 2012 and the wireless network2018.

When an electronic message is received in the inbox of the electronicmessage account 2006, the electronic message is detected by theenterprise server 2004, and a copy of the message and any necessarymobile device information are sent over the WAN 2012 to the wirelessgateway 2016. For example, the enterprise server 2004 may encapsulate acopy of the message into one or more data packets along with a wirelessidentification (e.g., a PIN) for the mobile communication device 2020,and transmit the data packet(s) to the wireless gateway 2016 over adirect TCP/IP level connection. The wireless gateway 2016 may then usethe wireless identification and/or other mobile device information totransmit the data packet(s) containing the electronic message over thewireless network 2018 to the mobile communication device 2020.

Electronic messages sent from the mobile communication device 2020 maybe encapsulated into one or more data packets along with a networkidentification for the enterprise server 2004 and then transmitted overthe wireless network 2018 to the wireless gateway 2016. The wirelessgateway 2016 may use the network identification for the enterpriseserver 2004 to forward the data packet(s) over the WAN 2012 to theenterprise server 2004, preferably via a direct TCP/IP level connection.Upon receiving the data packet(s) from the wireless gateway 2016, theenterprise server 2004 places the enclosed electronic message into theoutbox of the associated electronic message account 2006. The mailserver 2002 then detects the electronic message in the outbox anddelivers the message, as described above.

Security may be maintained outside of the firewall 2010 by encryptingall electronic messages sent between the enterprise server 2004 and themobile communication device 2020. For instance, an electronic message tobe redirected to the mobile communication device 2020 may be encryptedand compressed by the enterprise server 2004, and the encrypted messagemay then be encapsulated into one or more data packets for delivery tothe mobile communication device 2020. To maintain security, theelectronic message may remain encrypted over the entire communicationpath 2016, 2018, and 2012 from the enterprise server 2004 to the mobilecommunication device 2020. Similarly, electronic messages sent from themobile communication device 2020 may be encrypted and compressed by themobile communication device 2020 before being packetized and transmittedto the enterprise server 2004, and may remain encrypted over the entirecommunication path 2016, 2018, 2012 from the mobile communication device2020 to the enterprise server 2004.

In addition, the enterprise server 2004 may include a communicationsubsystem, a memory subsystem and a processing subsystem. Thecommunication subsystem may be operable to communicate with the wirelessgateway 2016 over the WAN 2012. The memory subsystem may be operable tostore data and program information. The processing subsystem may beoperable to store and retrieve data in the memory subsystem and executeprograms stored in the memory subsystem, and to cause the communicationsubsystem to transmit and receive information over the WAN 2012.

FIG. 11 is a block diagram illustrating an example mobile communicationdevice 2100. The block diagram for the example mobile communicationdevice 2100 can be considered a more detailed block diagram of themobile device 100 of FIG. 1. The mobile device 2100 includes aprocessing subsystem 2138, a communications subsystem 2111, ashort-range communications subsystem 2140, and a memory subsystem 2124,2126, and various other device subsystems and/or software modules 2142.The mobile device 2100 also includes a user interface, which may includea display 2122, a serial port 2130, keyboard 2132, a speaker 2134, amicrophone 2136, one or more auxiliary input/output devices 2128, and/orother user interface devices.

The processing subsystem 2138 controls the overall operation of themobile device 2100. Operating system software executed by the processingsubsystem 2138 may be stored in a persistent store, such as a flashmemory 2124, but may also be stored in other types of memory devices inthe memory subsystem, such as a read only memory (ROM) or similarstorage element. In addition, system software, specific deviceapplications, or parts thereof, may be temporarily loaded into avolatile store, such as a random access memory (RAM) 2126. Communicationsignals received by the mobile device 2100 may also be stored to RAM2126.

The processing subsystem 2138, in addition to its operating systemfunctions, enables execution of software applications 2124 on the device2100. A predetermined set of applications that control basic deviceoperations, such as data and voice communications, may be installed onthe device 2100 during manufacture, or subsequent to manufacture. Inaddition, a personal information manager (PIM) application, including anelectronic messaging application, may be installed on the device. ThePIM may, for example, be operable to organize and manage data items,such as e-mail, calendar events, voice mails, appointments, and taskitems. The PIM application may also be operable to send and receive dataitems via the wireless network 2119.

Communication functions, including data and voice communications, areperformed through the communication subsystem 2111, and possibly throughthe short-range communications subsystem 2140. The communicationsubsystem 2111 includes a receiver 2112, a transmitter 2114 and one ormore antennas 2116, 2118. In addition, the communication subsystem 2111also includes a processing module, such as a digital signal processor(DSP) 2120 or other processing device(s), and local oscillators (LOs)2113. The specific design and implementation of the communicationsubsystem 2111 is dependent upon the communication network in which themobile device 2100 is intended to operate. For example, a mobile device2100 may include a communication subsystem 2111 designed to operatewithin the Mobitex™ mobile communication system, the DataTAC™ mobilecommunication system, a GSM network, a GPRS network, a UMTS network,and/or an EDGE network.

Network access requirements vary depending upon the type ofcommunication system. For example, in the Mobitex and DataTAC networks,mobile devices are registered on the network using a unique personalidentification number or PIN associated with each device. In UMTS andGSM/GPRS networks, however, network access is associated with asubscriber or user of a device or with the subscription that the userhas been provided. A GPRS device therefore requires a subscriberidentity module, commonly referred to as a SIM card, in order to operateon a GSM/GPRS network.

When required network registration or activation procedures have beencompleted, the mobile device 2100 may send and receive communicationsignals over the communication network 2119. Signals received by theantenna 2116 from the communication network 2119 are routed to thereceiver 2112, which provides signal amplification, frequency downconversion, filtering, channel selection, etc., and may also provideanalog to digital conversion. Analog-to-digital conversion of thereceived signal allows the DSP to perform more complex communicationfunctions, such as demodulation and decoding. In a similar manner,signals to be transmitted to the network 2119 are processed (e.g.,modulated and encoded) by the DSP 2120 and are then provided to thetransmitter 2114 for digital to analog conversion, frequency upconversion, filtering, amplification and transmission to thecommunication network 2119 (or networks) via the antenna 2118.

In addition to processing communication signals, the DSP 2120 providesfor receiver 2112 and transmitter 2114 control. For example, gainsapplied to communication signals in the receiver 2112 and transmitter2114 may be adaptively controlled through automatic gain controlalgorithms implemented in the DSP 2120.

In a data communication mode, a received signal, such as a text messageor web page download, is processed by the communication subsystem 2111and input to the processing device 2138. The received signal is thenfurther processed by the processing device 2138 for output to a display2122, or alternatively to some other auxiliary I/O device 2128. A deviceuser may also compose data items, such as e-mail messages, using akeyboard 2138 and/or some other auxiliary I/O device 2128, such as atouchpad, a rocker switch, a thumb-wheel, or some other type of inputdevice. The composed data items may then be transmitted over thecommunication network 2119 via the communication subsystem 2111.

In a voice communication mode, overall operation of the device issubstantially similar to the data communication mode, except thatreceived signals are output to a speaker 2134, and signals fortransmission are generated by a microphone 2136. Alternative voice oraudio I/O subsystems, such as a voice message recording subsystem, mayalso be implemented on the device 2100. In addition, the display 2122may also be utilized in voice communication mode, for example, todisplay the identity of a calling party, the duration of a voice call,or other voice call related information.

The short-range communications subsystem 2140 enables communicationbetween the mobile device 2100 and other proximate systems or devices,which need not necessarily be similar devices. For example, theshort-range communications subsystem 2140 may include an infrared deviceand associated circuits and components, or a Bluetooth™ communicationmodule to provide for communication with similarly-enabled systems anddevices.

The apparatus, methods, flow diagrams, and structure block diagramsdescribed in this patent document may be implemented in the mobiledevices described herein by mobile device program code comprisingprogram instructions that are executable by the mobile device processingsubsystem. Other implementations may also be used, however, such asfirmware or even appropriately designed hardware configured to carry outthe methods and flow diagrams described in this patent document.Additionally, the flow diagrams and structure block diagrams describedin this patent document, which describe particular methods and/orcorresponding acts in support of steps and corresponding functions insupport of disclosed structural means, may also be utilized to implementcorresponding software structures and algorithms, and equivalentsthereof.

Many types of mobile devices may use the systems and methods describedherein, including GSM devices, CDMA devices, iDEN devices, TDMA devices,analog devices, WCDMA devices, or other wireless devices. The systemsand methods described herein may be used to facilitate voice and/or datacalls. The mobile device may also use wired communications. Furthermore,the apparatus and methods described in this patent document may beimplemented in other computing devices, such as a desktop phone, laptopcomputer with telephony capabilities, a desktop computer with telephonycapabilities, or any other electronic device operable to communicationover one or more wired and/or wireless telephone networks.

The embodiments described herein are examples of structures, systems ormethods having elements corresponding to the elements of the inventionrecited in the claims. This written description may enable those ofordinary skill in the art to make and use embodiments having alternativeelements that likewise correspond to the elements of the inventionrecited in the claims. The intended scope of the invention thus includesother structures, systems or methods that do not differ from the literallanguage of the claims, and further includes other structures, systemsor methods with insubstantial differences from the literal language ofthe claims.

1. A mobile device operable to initiate and receive communications overone or more communication networks, the mobile device comprising: aprocessing subsystem, a memory subsystem, a display subsystem, acommunication subsystem, and an input/output subsystem, the processingsubsystem coupled to the memory subsystem, display subsystem,input/output subsystem and communication subsystem, and operable tostore and retrieve data in the memory subsystem, to execute instructionsstored in the memory subsystem, receive input data from the input/outputsubsystem, and to cause the communication subsystem to transmit andreceive data over the communication network; and mobile device programcode comprising program instructions executable by the processingsubsystem and stored in the memory subsystem and upon such executioncause the mobile device to: receive a toll-free number as input toinitiate a phone call; determine whether the mobile device is within aNorth American Numbering Plan (NANP) service area; upon determining thatthe mobile device is within a NANP service area, initiate the phone callto the toll-free number; and upon determining that the mobile device isnot within a NANP service area, replace the Numbering Plan Area Code(NPA) of the toll-free number with a corresponding replace code toobtain a replace code toll-free number and initiate the phone call tothe replace code toll-free number.
 2. The mobile device of claim 1,wherein the program instructions executable by the mobile device thatcause the mobile device to determine whether the mobile device is withina NANP service area comprise program instructions that upon executioncause the mobile device to make the determination based on a countrycode.
 3. The mobile device of claim 2, wherein the country code isreceived from a wireless network in communication with the mobiledevice.
 4. The mobile device of claim 2, wherein the country code isreceived from a user input.
 5. The mobile device of claim 1, wherein theprogram instructions executable by the mobile device that cause themobile device to initiate the phone call to the toll-free number upondetermining that the mobile device is within a NANP service areacomprise program instructions that upon execution cause the mobiledevice to: determine if intra-numbering plan toll charges apply to thephone call; and upon determining that intra-numbering plan toll chargesapply to the phone call, replace the NPA of the toll-free number with acorresponding replace code to obtain a replace code toll-free number andinitiate the phone call to the replace code toll-free number.
 6. Themobile device of claim 1, wherein the mobile device is a GSM device. 7.The mobile device of claim 1, wherein the program instructionsexecutable by the mobile device that cause the mobile device todetermine whether the mobile device is within a NANP service areacomprise program instructions that upon execution cause the mobiledevice to operate in replace code mode and upon such operationautomatically replace the NPA of the toll-free number with acorresponding replace code.
 8. A mobile telephone communication deviceoperable to initiate and receive communications over one or morecommunication networks, the mobile telephone communication devicecomprising: a processing subsystem, a memory subsystem, a displaysubsystem, a communication subsystem, and an input/output subsystem, theprocessing subsystem coupled to the memory subsystem, display subsystem,input/output subsystem and communication subsystem, and operable tostore and retrieve data in the memory subsystem, to execute instructionsstored in the memory subsystem, receive input data from the input/outputsubsystem, and to cause the communication subsystem to transmit andreceive data over the communication network; and mobile telephonecommunication device program code comprising program instructionsexecutable by the processing subsystem and stored in the memorysubsystem and upon execution cause the mobile telephone communicationdevice to: receive a phone number as input to initiate a phone call;determine if the phone number corresponds to a national numbering planof the current service area serving the mobile telephone communicationdevice; upon determining that the phone number corresponds to thenational numbering plan of the current service area serving the mobiletelephone communication device, initiate a phone call to the phonenumber; upon determining that the phone number does not correspond tothe national numbering plan of the current service area serving themobile telephone communication device, determine if the phone number hasan associated replace code for any subset of the phone number; and upondetermining that the phone number has an associated replace code for anysubset of the phone number, replace the any subset of the phone numberwith the corresponding replace code to obtain a replace code number andinitiate a phone call to the replace code number.
 9. The mobiletelephone communication device of claim 8, wherein the programinstructions executable by the mobile telephone communication devicethat cause the mobile telephone communication device to determine if thephone number corresponds to a national numbering plan of the currentservice area serving the mobile telephone communication device compriseprogram instructions that upon execution cause the mobile telephonecommunication to make the determination based on a country code.
 10. Themobile telephone communication device of claim 9, wherein the countrycode is received from a user input.
 11. The mobile telephonecommunication device of claim 9, wherein the mobile telephonecommunication device is a mobile device, and wherein the country code isreceived from a wireless network in communication with the mobiledevice.
 12. The mobile telephone communication device of claim 8,wherein the program instructions executable by the mobile telephonecommunication device that cause the mobile telephone communicationdevice to determine if the phone number corresponds to a nationalnumbering plan of the current service area serving the mobile telephonecommunication device comprise program instructions that upon executioncause the mobile telephone communication device to operate in a replacecode mode and upon such operation automatically determine if the phonenumber has an associated replace code for any subset of the phone numberand upon determining that the phone number has an associated replacecode for any subset of the phone number, replace the any subset of thephone number with the corresponding replace code to obtain a replacecode number and initiate a phone call to the replace code number. 13.The mobile telephone communication device of claim 8, wherein theprogram instructions executable by the mobile telephone communicationdevice that cause the mobile telephone communication device to determineif the phone number has an associated replace code for any subset of thephone number comprise program instructions that upon execution cause themobile telephone communication device to: determine the nationalnumbering plan to which the phone number corresponds; identify replacecodes corresponding to the national numbering plan to which the phonenumber corresponds; and make the determination of whether the phonenumber has an associated replace code for any subset of the phone numberbased on identified replace codes.
 14. The mobile telephonecommunication device of claim 8, comprising further mobile telephonecommunication device program code comprising program instructionsexecutable by the processing subsystem and stored in the memorysubsystem and upon execution cause the mobile telephone communicationdevice to: determine if the phone call initiated to the phone numberconnected; upon determining that the phone call initiated to the phonenumber did not connect, determine if the phone number has an associatedreplace code for any subset of the phone number; and upon determiningthat the phone number has an associated replace code for any subset ofthe phone number, replace the any subset of the phone number with thecorresponding replace code to obtain a replace code number and initiatea phone call to the replace code number.
 15. The mobile telephonecommunication device of claim 14, wherein the determination is madebased on a user input.
 16. A processor-implemented method of placing atelephone call to a toll-free number from a mobile device, comprising:determining whether the mobile device is within a North AmericanNumbering Plan (NANP) service area; upon determining that the mobiledevice is within a NANP service area, initiating the phone call to thetoll-free number; and upon determining that the mobile device is notwithin a NANP service area, replacing the Numbering Plan Area Code (NPA)of the toll-free number with a corresponding replace code to obtain areplace code toll-free number, and initiating the phone call to thereplace code toll-free number, wherein initiating the phone call to thetoll-free number upon determining that the mobile device is within aNANP service area comprises: determining if intra-numbering plan tollcharges apply to the phone call; and upon determining thatintra-numberina elan toll charges apply to the phone call, replacing theNPA of the toll-free number with a corresponding replace code to obtaina replace code toll-free number and initiating the Phone call to thereplace code toll-free number.
 17. The method of claim 16, whereindetermining whether the mobile device is within a North AmericanNumbering Plan (NANP) service area is based on a country code.
 18. Themethod of claim 17, wherein the country code is received from a wirelessnetwork.
 19. A processor-implemented method of placing a telephone callto a phone number, from a mobile telecommunication device, comprising:determining whether the phone number requires modification by anassociated replace code; upon determining that the phone number does notrequire modification by an associated replace code, placing a call fromthe mobile telecommunication device to the phone number; and upondetermining that the phone number requires modification by an associatedreplace code, modifying the phone number by the replace code to obtain areplace code number and placing a call from the mobile telecommunicationdevice to the replace code number; wherein determining if the phonenumber requires modification by an associated replace code comprises:determining whether the country called is the same as the country inwhich the mobile telecommunication device is operating; determining thatthe phone number does not require modification by an associated replacecode if the country called is the same as the country in which themobile telecommunication device is operating; and determining that thephone number does require modification by an associated replace code ifthe country called is not the same as the country in which the mobiletelecommunication device is operating; wherein determining if the phonenumber requires modification by an associated replace code comprises:determining whether the mobile telecommunication device is operating ina replace code mode; determining that the shone number does not requiremodification by an associated replace code if the mobiletelecommunication device is not operating in a replace code mode; anddetermining that the phone number does require modification by anassociated replace code if the mobile telecommunication device isoperating in a replace code mode.